import { defineConfig } from "vite";
import vue from "@vitejs/plugin-vue";

// import path from "path";
// https://vitejs.dev/config/
export default defineConfig({
  //  代理，具体请求在./src/lib/request/index.ts中，./src/pages/Pages/login.vue发送的请求
  // 问题不是代理不上，而是生产环境下如果使用代理，会造成性能问题，怕服务器扛不住
  server: {
    port: 4000,
    open: true,
    proxy: {
      "/oa": "http://192.168.110.44:8085",
      // "/oa": "http://localhost:8085",
    },
  },
  
  plugins: [vue()],
  css: {
    preprocessorOptions: {},
  },
  build: {
    cssCodeSplit: false, // 如果设置为false，整个项目中的所有 CSS 将被提取到一个 CSS 文件中
    sourcemap: false, // 构建后是否生成 source map 文件。如果为 true，将会创建一个独立的 source map 文件
    target: "modules", // 设置最终构建的浏览器兼容目标。默认值是一个 Vite 特有的值——'modules'  还可设置为 'es2015' 'es2016'等
    chunkSizeWarningLimit: 1024, // 单位kb  打包后文件大小警告的限制 (文件大于此此值会出现警告)
    assetsInlineLimit: 4096, // 单位字节（1024等于1kb） 小于此阈值的导入或引用资源将内联为 base64 编码，以避免额外的 http 请求。设置为 0 可以完全禁用此项。
    minify: "terser", // 'terser' 相对较慢，但大多数情况下构建后的文件体积更小。'esbuild' 最小化混淆更快但构建后的文件相对更大。
    terserOptions: {
      compress: {
        drop_console: true, // 生产环境去除console
        drop_debugger: true, // 生产环境去除debugger
      },
    },
    rollupOptions: {
      output: {
        manualChunks: {
          // 拆分代码
          vue: ["vue", "vue-router", "pinia"], // 如果打包有BUG请屏蔽
          // "element-plus": ["element-plus"],
          // echarts: ["echarts"],
          // xlsx: ["xlsx"],
        },
      },
    },
  },
});
